home *** CD-ROM | disk | FTP | other *** search
Korn shell script | 1995-01-20 | 15.0 KB | 554 lines |
- #!/bin/ksh
- #
- # Please report changes and bugs to egan@cbs.cis.com
- # version .1
- # 10/24/94
- #
- # NOTES:
- # 1. Use / where you would use \
- # 2. Use - where you would use /
- # e.g. DOS: NET TIME /SET \\CBS
- # SAMBA: net time -set //winnt
- # 3. net logon/logoff is intended to be used with smbmount when it becomes
- # available
- # 4. net use (see 3.)
- # 5. net password (dunno yet)
- # 6. net init (?)
- # 7. net view does not search other workgroups or list the machines in your
- # workgroup. Will when samba does.
- #
-
-
- PATH=/usr/samba/bin:$PATH
-
- WORKGROUP=SLC
- COMMENT="AIX 3.2.5 Server"
- LOGFILE=/usr/samba/etc/smb.log
- DL=0
-
- SAMBAVER=$(smbclient -h | head -2 | tail -1 | awk '{print $2}')
- SMBCONF=/usr/samba/etc/smb.conf
- ROOTDIR=$(grep "root dir" $SMBCONF | awk -F= '{print $2}' | awk '{print $1}')
- if [ -z "$ROOTDIR" ]
- then
- ROOTDIR=/
- fi
- if [ -z "$PAGER" ]
- then
- PAGER=more
- fi
-
-
- COMMAND=$1
- case $COMMAND in
- config)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Display your current Samba settings."
- echo
- echo "net config"
- echo
- else
- echo "Computer name //$(uname -n)"
- echo "User name $LOGNAME"
- echo
- echo "Software version $(uname -s) $(uname -v).$(uname -r)"
- echo "Samba version $SAMBAVER"
- echo "Workstation root directory $ROOTDIR"
- echo
- echo "Workgroup $WORKGROUP"
- fi
- ;;
- diag)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Display your Samba logfile."
- echo
- echo "net diag"
- echo
- else
- if [ -r $LOGFILE ]
- then
- tail -f $LOGFILE
- else
- echo "net diag: unable to read $LOGFILE"
- fi
- fi
- ;;
- logoff)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Breaks the connections between your computer and the"
- echo "shared resources to which it is connected."
- echo
- echo "net logoff [-y]"
- echo
- echo " -y Carries out the net logoff command without"
- echo " first prompting you to provide information or"
- echo " confirm actions."
- echo
- else
- echo "Currently unavailable."
- fi
- ;;
- logon)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Identifies you as a member of a workgroup and"
- echo "reestablishes your persistent connections."
- echo
- echo "net logon [-y]"
- echo
- echo " -y Carries out the net logon command without"
- echo " first prompting you to provide information or"
- echo " confirm actions."
- echo
- else
- echo "Currently unavailable."
- fi
- ;;
- password)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Changes your logon password."
- echo
- echo "net password //computer | -domain:name [user [oldpassword [newpassword]]]"
- echo
- echo " oldpassword Specifies your current password."
- echo " newpassword Specifies your new password. It can have as"
- echo " many as 14 characters."
- echo " computer Specifies the Windows NT or LAN Manager server"
- echo " on which you want to change your password."
- echo " -domain Specifies that you want to change your"
- echo " password on a Windows NT or LAN Manager domain."
- echo " name Specifies the Windows NT or LAN Manager domain on which"
- echo " you want to change your password."
- echo " user Specifies your Windows NT or LAN Manager user name."
- echo
- else
- echo "Currently unavailable."
- fi
- ;;
- print)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Displays information about the print queue on a shared or local"
- echo "printer."
- echo
- echo "net print //computer[/printer]"
- echo "net print [printer]"
- echo
- echo " computer Specifies the name of the computer whose"
- echo " print queue you want information about."
- echo " printer Specifies the name of the printer you "
- echo " want information about."
- echo
- echo "When you specify the name of a computer by using the NET PRINT"
- echo "command, you receive information about the print queues on"
- echo "each of the shared printers that are connected to the computer."
- echo
- else
- if [ -z "$2" ]
- then
- lpstat
- else
- lpstat -a$2
- fi
- fi
- ;;
- ps)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Displays information about samba processes."
- echo
- echo "net ps"
- echo
- else
- ps -ef | grep mbd | grep -v grep
- fi
- ;;
- restart)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Restarts services."
- echo
- echo "net restart [-y]"
- echo
- echo " -y Carries out the net stop command without"
- echo " first prompting you to provide information or"
- echo " confirm actions."
- echo
- else
- if [ "$LOGNAME" = "root" ]
- then
- if [ "$2" = "-y" ]
- then
- net stop -y
- net start -y
- else
- echo
- echo "Do you really want to restart samba services? \c"
- read YN
- case $YN in
- y|Y)
- net stop -y
- net start -y
- ;;
- esac
- fi
- else
- echo
- echo "net restart: You must be logged in as root."
- echo
- fi
- fi
- ;;
- start)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Starts services."
- echo
- echo "net start [-y]"
- echo
- echo " -y Carries out the net start command without"
- echo " first prompting you to provide information or"
- echo " confirm actions."
- echo
- else
- if [ "$LOGNAME" = "root" ]
- then
- if [ "$2" = "-y" ]
- then
- nmbd -D -d $DL -G $WORKGROUP -C "$COMMENT" -l $LOGFILE
- else
- echo
- echo "Do you really want to start samba services? \c"
- read YN
- case $YN in
- y|Y)
- nmbd -D -d $DL -G $WORKGROUP -C "$COMMENT" -l $LOGFILE
- ;;
- esac
- fi
- else
- echo
- echo "net start: You must be logged in as root."
- echo
- fi
- fi
- ;;
- stop)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Stops services."
- echo
- echo "net stop [-y]"
- echo
- echo " -y Carries out the net stop command without"
- echo " first prompting you to provide information or"
- echo " confirm actions."
- echo
- else
- if [ "$LOGNAME" = "root" ]
- then
- if [ "$2" = "-y" ]
- then
- for i in $((ps -e | \
- grep smbd; ps -e | \
- grep nmbd) | grep -v grep | \
- awk '{print $1}')
- do
- kill -1 $i >/dev/null 2>&1
- sleep 1
- kill -9 $i >/dev/null 2>&1
- done
- else
- echo
- echo "Do you really want to stop samba services? \c"
- read YN
- case $YN in
- y|Y)
- for i in $((ps -e | \
- grep smbd; ps -e | \
- grep nmbd) | grep -v grep | \
- awk '{print $1}')
- do
- kill -1 $i >/dev/null 2>&1
- sleep 1
- kill -9 $i >/dev/null 2>&1
- done
- ;;
- esac
- fi
- else
- echo
- echo "net stop: You must be logged in as root."
- echo
- fi
- fi
- ;;
- time)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Displays the time on or synchronizes your computer's "
- echo "clock with the shared clock on a Microsoft Windows for "
- echo "Workgroups, Windows NT, LAN Manager, or Samba time server."
- echo
- echo "net time //computer [-set]"
- echo
- echo " computer Specifies the name of the computer (time"
- echo " server) whose time you want to check or"
- echo " synchronize your computer's clock with."
- echo " -set Synchronizes your computer's clock with the"
- echo " clock on the computer or workgroup you"
- echo " specify."
- echo
- else
- HOST=$(echo $2 | tr -d '/')
- if [ -z "$HOST" ]
- then
- echo
- echo "net time: You must supply a host name."
- echo
- else
- if [ "$3" = "-set" ]
- then
- if [ "$LOGNAME" = "root" ]
- then
- set $(smbclient -L $HOST | head -1)
- case $5 in
- Jan)
- MM=01
- ;;
- Feb)
- MM=02
- ;;
- Mar)
- MM=03
- ;;
- Apr)
- MM=04
- ;;
- May)
- MM=05
- ;;
- Jun)
- MM=06
- ;;
- Jul)
- MM=07
- ;;
- Aug)
- MM=08
- ;;
- Sep)
- MM=09
- ;;
- Oct)
- MM=10
- ;;
- Nov)
- MM=11
- ;;
- Dec)
- MM=12
- ;;
- esac
- DD=$6
- integer day=$6
- if ((day < 10))
- then
- DD="0$day"
- fi
- YY=$(echo $8 | awk '{print substr($1,3,2)}')
- set $(echo $7 | tr ':' ' ')
- date ${YY}${MM}${DD}${1}${2}.${3}
- else
- echo
- echo "net time //$HOST -set: You must be logged in as root."
- echo
- fi
- else
- smbclient -L $HOST | head -1 \
- | eval sed 's/Server\ time\ is/Current\ time\ at\ \\/\\/$HOST\ is/'
- fi
- fi
- fi
- ;;
- use)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Connects or disconnects your computer from a shared"
- echo "resource or displays information about your"
- echo "connections."
- echo
- echo "net use /dir [//computer/directory [password | ?]]"
- echo " [-persistent:yes | no] [-savepw:no] [-y] [-n] "
- echo
- echo "net use /dir | //computer/directory -delete [-y] "
- echo
- echo "net use -persistent:yes | no | list | save | clear [-y] [-n]"
- echo
- echo " dir Specifies the unix directory you assign to a"
- echo " shared directory."
- echo " computer Specifies the name of the computer sharing"
- echo " the resource."
- echo " directory Specifies the name of the shared directory."
- echo " printer Specifies the name of the shared printer."
- echo " password Specifies the password for the shared "
- echo " resource, if any."
- echo " ? Specifies that you want to be prompted for the "
- echo " password of the shared resource. You don't "
- echo " need to use this option unless the password is "
- echo " optional."
- echo " -persistent Specifies which connections should be"
- echo " restored the next time you log on to"
- echo " the network. It must be followed"
- echo " by one of the values below:"
- echo " yes Specifies that the connection you are"
- echo " making and any subsequent connections"
- echo " should be persistent."
- echo " no Specifies that the connection you are"
- echo " making and any subsequent connections"
- echo " should not be persistent."
- echo " list Lists your persistent connections."
- echo " save Specifies that all current"
- echo " connections should be persistent."
- echo " clear Clears your persistent connections."
- echo " -savepw:no Specifies that the password you type"
- echo " should not be saved in your password-list"
- echo " file. You need to retype the password the"
- echo " next time you connect to this resource."
- echo " -yes -y Carries out the net use command without"
- echo " first prompting you to provide information or"
- echo " confirm actions."
- echo " -delete Breaks the specified connection to a shared"
- echo " resource."
- echo " -no -n Carries out the net use command, responding "
- echo " with NO automatically when you are prompted"
- echo " to confirm actions."
- echo
- echo "To list all of your connections, type net use without"
- echo "options."
- echo
- echo "To see this information one screen at a time, type the"
- echo "following at the command prompt:"
- echo
- else
- echo "Currently unavailable."
- fi
- ;;
- ver)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Displays the type and version number of the MS LAN"
- echo "redirector you are using."
- echo
- echo " net ver"
- echo
- else
- echo "Samba $SAMBAVER"
- fi
- ;;
- view)
- if [ "$2" = "-?" ]
- then
- echo
- echo "Displays a list of computers in a specified workgroup or"
- echo "the shared resources available on a specified computer."
- echo
- echo " net view [//computer]"
- echo " net view [-workgroup:wgname] (unsupported)"
- echo " net view [-IP:computer]"
- echo
- echo " computer Specifies the name of the computer whose"
- echo " shared resources you want to see listed."
- echo " -workgroup Specifies that you want to view the names "
- echo " of the computers in another workgroup that"
- echo " share resources. "
- echo " wgname Specifies the name of the workgroup whose"
- echo " computer names you want to view."
- echo " -IP Specifies IP address of remote computer."
- echo
- echo "To display a list of computers in your workgroup that share"
- echo "resources, type NET VIEW without options."
- echo
- else
- HOST=$(echo $2 | tr -d '/')
- if [ -z "$HOST" ]
- then
- echo
- echo "net view: You must supply a host name."
- echo
- else
- FC=$(echo $HOST | awk '{print substr($1,1,1)}')
- if [ "$FC" = "-" ]
- then
- echo $HOST | if grep : >/dev/null 2>&1
- then
- IP=$(echo $HOST | \
- awk -F: '{print substr($1,2,length($1)-1)}')
- COMP=$(echo $HOST | awk -F: '{print $2}')
- echo "Shared resources at -$IP:$COMP"
- smbclient -L $COMP -I $IP | tail +3 | sed 's/^ //'
- else
- echo
- echo "net view: Must be in -IP:computer format."
- echo
- fi
- else
- echo "Shared resources at //$HOST"
- smbclient -L $HOST | tail +3 | sed 's/^ //'
- fi
- fi
- fi
- ;;
- *)
- echo
- echo "For more information about a specific net"
- echo "command, type the command name followed by -?"
- echo "(for example, net view -?)."
- echo
- echo "net Same as 'net help'"
- echo "net config Displays information about your Samba settings."
- echo "net diag tail -f LOGFILE"
- echo "net help Provides information about commands."
- echo "net logoff Breaks the connection between your computer and"
- echo " the shared resources to which it is connected."
- echo "net logon Identifies you as a member of a workgroup and"
- echo " reestablishes your persistent connections."
- echo "net password Changes your logon password."
- echo "net print Displays information about print queues."
- echo "net ps Displays information about samba processes."
- echo "net restart Restarts services."
- echo "net start Starts services."
- echo "net stop Stops services."
- echo "net time Displays the time on or synchronizes your"
- echo " computer's clock with the clock on a Microsoft"
- echo " Windows for Workgroups, Windows NT, LAN Manager,"
- echo " or Samba time server."
- echo "net use Connects to or disconnects from a shared"
- echo " resource or displays information about"
- echo " connections."
- echo "net ver Displays the type and version number of the"
- echo " MS LAN redirector you are using."
- echo "net view Displays a list of computers that share"
- echo " resources or a list of shared resources"
- echo " on a specific computer."
- ;;
- esac
-
-